home *** CD-ROM | disk | FTP | other *** search
- unit TestForm;
-
- interface
- {$W+}//set stack frames on as this seemms to help win95 access error
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- glwin, StdCtrls, Buttons,opengl,common,glfuncs, ToolWin, ComCtrls, ExtCtrls, {glaux,}
- GLCtrolP, glAbsWin, glLight, GLTexWin{,glprint},dualwin, glStereo,printers;
-
- type
- TForm1 = class(TForm)
- ToolBar1: TToolBar;
- SpeedButton1: TSpeedButton;
- PrintTest: TButton;
- sb1: TStatusBar;
- PrintDialog1: TPrintDialog;
- procedure FormCreate(Sender: TObject);
- procedure glwMouseUp(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure SpeedButton6Click(Sender: TObject);
- procedure SpeedButton7Click(Sender: TObject);
- procedure SpeedButton1Click(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure PrintTestClick(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- procedure OpenGLWindow1SelectDown(Sender: TCustomOpenGLWindow; XPos,
- YPos: Integer; WX, WY, WZ: Double; var RedrawNeeded: Boolean;
- var SelectState: GLSelectState);
- procedure OpenGLWindow1SelectMove(Sender: TCustomOpenGLWindow; XPos,
- YPos: Integer; WX, WY, WZ: Double; var RedrawNeeded: Boolean;
- var SelectState: GLSelectState);
- procedure OpenGLWindow1SelectUp(Sender: TCustomOpenGLWindow; XPos,
- YPos: Integer; WX, WY, WZ: Double; var RedrawNeeded: Boolean;
- var SelectState: GLSelectState);
- procedure SpeedButton2Click(Sender: TObject);
- procedure OpenGLWindow1Paint(sender: TCustomOpenGLWindow;
- aCanvas: TCanvas; SafeGDI: Boolean);
- procedure FormShow(Sender: TObject);
- private
- { Private declarations }
- GLW:TOPENGLWindow;
-
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- uses bmapview;
-
- {$R *.DFM}
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- GLW:= TOPENGLWindow.Create(Self);
- GLW.Parent:=Self;
- end;
-
- procedure TForm1.FormDestroy(Sender: TObject);
- begin
- GLW.Free;
- end;
- procedure TForm1.glwMouseUp(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- If Button =mbRight then GLW.SnapToPoint(0,0,0,'location = 0,0,0');
- end;
-
- procedure TForm1.SpeedButton6Click(Sender: TObject);
- begin
- GLW.Zoomall;
- end;
-
-
- procedure TForm1.SpeedButton7Click(Sender: TObject);
- begin
- GLW.Perspective:= not GLW.Perspective;
- end;
-
- procedure TForm1.SpeedButton1Click(Sender: TObject);
- begin
- If SpeedButton1.Down then GLW.ShowGLControl(Sender) else GLW.HideGLControl;
- end;
-
-
- procedure TForm1.PrintTestClick(Sender: TObject);
- Var {aMF : tMetaFile;}
- aBM : tBitMap;
- { PageResX ,PageResY : Single;
- V1,V2 : Integer;
- PrintDC : tHandle; }
- begin
- Screen.Cursor:=crHourglass;
-
- aBM:=tBitMap.create;
- aBM.Width:=800;aBM.Height:=600;
- glw.GetSizedBitMapImage(aBM);
- aBM.SaveToFile('TestBM.bmp');
- aBM.Free;
- (*
- PageResX:=20;
- PageResY:=20;
- V1:= Round(250*PageResX);
- V2:= Round(250*PageResY);
-
- aMF:=GLW.getScaledMetaFileImage(V1,V2,PageResX,PageResY,1000);
- If Assigned (aMF) then
- Begin
- aMF.SaveToFile('TestMF.WMF');
- aMF.Free;
- END;
- *)
- (*
- If PrintDialog1.execute then
- Begin
- With Printer do
- PrintDC:=Printer.Handle;
- // printer resolution
- PageResX:=GetDeviceCaps(PrintDC,LOGPIXELSX)/25.4;
- PageResY:=GetDeviceCaps(PrintDC,LOGPIXELSY)/25.4;
-
- If Assigned (aMF) then
- Begin
- aMF.SaveToFile('TestMF.WMF');
- Printer.Begindoc;
- Printer.Canvas.Draw(100,400,aMF);
- Printer.endDoc;
- aMF.Free;
- end;
- end; *)
- screen.Cursor:=crDefault;
- end;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- Application.CreateForm(Ttestwin,testwin);
- With testwin do
- Begin
- { gl1.ShareGL:=GLW;}
- end;
- testwin.ShowModal;
- testwin.Free;
- end;
-
- procedure TForm1.OpenGLWindow1SelectDown(Sender: TCustomOpenGLWindow; XPos,
- YPos: Integer; WX, WY, WZ: Double; var RedrawNeeded: Boolean;
- var SelectState: GLSelectState);
- begin
- {}
- end;
-
- procedure TForm1.OpenGLWindow1SelectMove(Sender: TCustomOpenGLWindow; XPos,
- YPos: Integer; WX, WY, WZ: Double; var RedrawNeeded: Boolean;
- var SelectState: GLSelectState);
- begin
- {}
- end;
-
- procedure TForm1.OpenGLWindow1SelectUp(Sender: TCustomOpenGLWindow; XPos,
- YPos: Integer; WX, WY, WZ: Double; var RedrawNeeded: Boolean;
- var SelectState: GLSelectState);
- begin
- {}
- end;
-
- procedure TForm1.SpeedButton2Click(Sender: TObject);
- var aRect:TRect;
- begin
- SetRectEmpty(aRect);
- aREct.Right:=GLw.Width div 2;
- aRect.Bottom:=GLW.Height div 2;
- GLW.InvalidateRectangle(aRect,True);
- end;
-
- procedure TForm1.OpenGLWindow1Paint(sender: TCustomOpenGLWindow;
- aCanvas: TCanvas; SafeGDI: Boolean);
- begin
- If (Sender is TOpenGLWindow) and (TOpenGLWindow(Sender).TestScene=tsBasicScene) then
- with acanvas do
- begin
- Pen.Color:=clRed;
- Brush.Style:=bsClear;//let the background come through
- Font.color:=clGreen;//use green to show up on black or white background
- TextOut(110,100,'Demo of GDI Text');
- //draw a simple red line
- Moveto(100,100);
- LineTo(200,200);
- end;
- end;
-
- procedure TForm1.FormShow(Sender: TObject);
- Var GL:tGLPoint;
- begin
- {}
- glw.align:=alclient;
- GLW.BackGround:=glBlackBkgd;
- GLW.Perspective:=False;
- GLW.HUD:=True;
- GLW.Grid:=True;
- GLW.coords:=SB1.Panels[0];
- GLw.ExtraData:=sb1.Panels[1];
- Application.OnShowHint:=GLW.ShowGLHint;
- glw.grabfocus:=True;
- GL.X:=0; GL.Y:=0;GL.Z:=0;
- glw.RefPoint:=GL;
- GLW.OnPaint:= OpenGLWindow1Paint;
- GLW.Perspective:=True;
- GLW.StdDisplayList:=True;
- GLW.TestScene:=tsColorTriangle;
- end;
-
- end.
-